package com.dinglian.ots.service;

import com.dinglian.ots.vo.cart.BrandCartVo;
import com.dinglian.ots.vo.cart.DeleteCartVo;
import com.dinglian.ots.vo.order.*;
import com.github.pagehelper.PageInfo;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * @author wangbo
 */
public interface OrderService {

    /**
     * 生成选款单
     * @param orderVo
     */
    void createElectionOrder(OrderVo orderVo);

    /**
     * 我的选款单
     * @param userId
     * @param seasonId
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<OrderInfoVo> myElectionOrder(Integer userId,Integer seasonId,Integer pageNum,Integer pageSize);

    /**
     * 生成选款单
     * @param userId
     * @param seasonId
     * @param brandId
     * @param response
     */
    void exportElectionOrder(Integer userId, Integer seasonId,Integer brandId, HttpServletResponse response);

    /**
     * 我的选款单详情
     * @param userId
     * @param seasonId
     * @param brandId
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<ProductOrderVo> myElectionOrderInfo(Integer userId, Integer seasonId, Integer brandId, Integer pageNum, Integer pageSize);


    /**
     * 修改选款单
     * @param updateElectionOrder
     */
    Map updateMyElectionOrderInfo(UpdateElectionOrder updateElectionOrder);

    /**
     * 删除选款单
     * @param deleteElectionOrder
     */
    Map deleteMyElectionOrderInfo(DeleteElectionOrder deleteElectionOrder);

    /**
     * 获取订单政策
     * @param userId
     * @param brandId
     * @return
     */
    Map getOrderListRule(Integer userId, Integer brandId);

    /**
     * 查询品牌订单政策
     * @param userId
     * @param brandId
     * @return
     */
    Map getBrandOrderListRule(Integer userId, Integer brandId);
}
